CVL KRA Upload API
The following document highlights the details of the CVL KRA Upload API.
API Description
Objective
The CVL KRA Upload API manages the submission and modification of KYC applications in the KYC registration agency. The API supports new KYC submissions, and modifications based on the application's status.
| Input | Output |
|---|---|
| KYC application details including personal information, address, documents, and application metadata | KYC application status, acknowledgment details, and application identifiers. See the complete list of output fields. |
API URL
The Upload API is available in two modes: async and sync. See Async vs Sync Endpoints for a detailed comparison of both modes and guidance on which to use.
Async
https://ind-engine.thomas.hyperverge.co/v1/async/CVLKRAUpload
Sync
https://ind-engine.thomas.hyperverge.co/v1/CVLKRAUpload
API Endpoint
CVLKRAUpload
Overview
The CVL KRA Upload API is RESTful and uses standard HTTP verbs and status codes. The responses are in JSON format and you should upload all images and files as form-data through a POST request.
Method - POST
Authentication
You need a unique pair of application ID (appId) and application key (appKey) from HyperVerge to verify your identity for accessing the API.
Headers
| Header | Mandatory or Optional | Description | Input Format |
|---|---|---|---|
| content-type | Mandatory | This parameter defines the media type for the request payload | application/json |
| appId | Mandatory | The application identifier shared by HyperVerge. You can find the details in the dashboard's credentials tab. | Unique value |
| appKey | Mandatory | The application key shared by HyperVerge. You can find the details in the dashboard's credentials tab. | Unique value |
| transactionId | Mandatory | A unique identifier for tracking a user journey | Unique value mapped to the user's journey |
Inputs
The following table provides the details of the parameters required for the API's request body:
| Parameter | Mandatory / Optional | Type | Description | Input Format | Default Value |
|---|---|---|---|---|---|
appUpdtflg | Mandatory | string | The value should be selected based on the current status of the KYC application (obtained from the CVL Search and Verify API). How to choose the correct value:
|
| Not Applicable |
kraAgency | Mandatory | string | Specifies the KYC Registration Agency (KRA) that will handle the KYC application |
| Not Applicable |
appType | Mandatory | string | Specifies whether the application is for an individual applicant or a non-individual applicant Note From this point forward, 'user' refers to an individual applicant, and 'organization' refers to a non-individual applicant. |
| Not Applicable |
appNo | Optional | string | The unique number generated for each KYC application | Not Applicable | Not Applicable |
appDate | Mandatory | string | The date on which the KYC application was submitted | DD-MM-YYYY | Not Applicable |
appPanNo | Mandatory | string | The PAN of the user | Not Applicable | Not Applicable |
appPanCopy | Mandatory | string | The value is 'yes' if the user's PAN card image has been submitted; otherwise, the value is 'no' | yes, no | Not Applicable |
appExmt | Mandatory | string | The value is 'no' if the user's PAN card image has been submitted, and 'yes' if user's exempted from submitting the PAN card | yes, no | Not Applicable |
appExmtCat | Optional | string | The user was exempted from submitting their PAN card image due to one or more valid reasons. For the complete list of exemption criteria, please refer to this page | Allowed Values | Not Applicable |
appExmtIdProof | Mandatory | string | The document used as Proof of Identity. For the complete list of valid ID proof documents, please refer to this page. | Allowed Values | Not Applicable |
appIpvFlag | Mandatory | string | The value is 'yes' if an In-Person Verification (IPV) was conducted for the KYC application; 'no' if not conducted, or 'exempted' if completed online. |
| Not Applicable |
appIpvDate | Optional | string | The date when the IPV was conducted, if applicable | DD-MM-YYYY | Not Applicable |
appGen | Mandatory | string | The gender of the user. Valid values are F (Female), M (Male), and T (Transgender) |
| Not Applicable |
appName | Mandatory | string | The name of the user | Not Applicable | Not Applicable |
appFName | Mandatory | string | The name of the user's father/husband | Not Applicable | Not Applicable |
appRegno | Optional | string | The registration number of the organization | Not Applicable | Not Applicable |
appDobIncorp | Mandatory | string | The date of birth of the user or the incorporation date of the organization | DD-MM-YYYY | Not Applicable |
appCommenceDt | Optional | string | The date when the organization commenced business | DD-MM-YYYY | Not Applicable |
appNationality | Mandatory | string | The nationality of the user |
| Not Applicable |
appOthNationality | Optional. (Mandatory if user nationality is 'Others') | string | The user's nationality, if not Indian; for example, Argentina, Greece, etc | Not Applicable | Not Applicable |
appCompStatus | Mandatory | string | The type of organization. For the complete list of different types of valid organizations, please refer to this page | Allowed Values | Not Applicable |
appOthCompStatus | Optional | string | The status of the company, if 'Others' (as from appCompStatus's value) | Not Applicable | Not Applicable |
appResStatus | Mandatory | string | The residential status of the user. It could be one of the following:
|
| Not Applicable |
appResStatusProof | Optional. (Mandatory for NRI journeys) | string | The address proof for a non-residential Indian or person of Indian origin. It could be one of the following documents:
|
| Not Applicable |
appUidNo | Optional | string | The last four digits of the UID/Aadhaar number of the user | Not Applicable | Not Applicable |
appCorAdd1 | Mandatory | string | The first line of the correspondence address. It includes the house number and the street name. | Not Applicable | Not Applicable |
appCorAdd2 | Optional | string | The second line of the correspondence address. It includes the district name. | Not Applicable | Not Applicable |
appCorAdd3 | Optional | string | The third line of the correspondence address. It includes the name of the corresponding state. | Not Applicable | Not Applicable |
appCorCity | Mandatory | string | The correspondence city | Not Applicable | Not Applicable |
appCorPincd | Mandatory | string | The PIN code for the correspondence address | Not Applicable | Not Applicable |
appCorState | Mandatory | string | The correspondence state, if the user's nationality is Indian | Allowed Values | Not Applicable |
appCorCtry | Mandatory | string | The correspondence country | Not Applicable | India |
appOffIsd | Optional | string | The ISD code for the user's office contact number | Not Applicable | Not Applicable |
appOffStd | Optional | string | The STD code for the user's office contact number | Not Applicable | Not Applicable |
appOffNo | Optional | string | The user's office contact number | Not Applicable | Not Applicable |
appResIsd | Optional | string | The ISD code for the user's residential contact number | Not Applicable | Not Applicable |
appResStd | Optional | string | The STD code for the user's residential contact number | Not Applicable | Not Applicable |
appResNo | Optional | string | The user's residential contact number | Not Applicable | Not Applicable |
appMobIsd | Optional | string | The ISD code for the user's mobile phone number | Not Applicable | Not Applicable |
appMobNo | Mandatory | string | The user's mobile phone number | Not Applicable | Not Applicable |
appFaxIsd | Optional | string | The ISD code for the user's fax number | Not Applicable | Not Applicable |
appFaxStd | Optional | string | The STD code for the user's fax number | Not Applicable | Not Applicable |
appFaxNo | Optional | string | The fax number for the user | Not Applicable | Not Applicable |
appEmail | Mandatory | string | The email address of the user | Not Applicable | Not Applicable |
appCorAddProof | Mandatory | string | The document serving as proof of the correspondence address. For the complete list of accepted documents, please refer to this page. | Allowed Values | Not Applicable |
appCorAddRef | Mandatory | string | The reference number of the address proof document submitted as the correspondence address proof.
| Not Applicable | Not Applicable |
appCorAddDt | Optional | string | The validity date of the corresponding address proof, as specified in the address proof document | DD-MM-YYYY | Not Applicable |
appPerAddFlag | Mandatory | string | This flag indicates whether the permanent residential address matches the corresponding address. If they match, the corresponding address value is used; otherwise, the permanent address must be provided separately in the subsequent address parameters | yes, no | Not Applicable |
appPerAdd1 | Mandatory | string | The first line of the permanent address. It includes the house number and the street name. | Not Applicable | Not Applicable |
appPerAdd2 | Optional | string | The second line of the permanent address. It includes the name of the district. | Not Applicable | Not Applicable |
appPerAdd3 | Optional | string | The third line of the permanent address. It includes the name of the state. | Not Applicable | Not Applicable |
appPerCity | Mandatory | string | The city of the permanent address | Not Applicable | Not Applicable |
appPerPincd | Mandatory | string | The PIN code for the permanent address | Not Applicable | Not Applicable |
appPerState | Mandatory | string | The state of the permanent address | Allowed Values | Not Applicable |
appPerCtry | Mandatory | string | The country of the permanent address | Not Applicable | India |
appPerAddProof | Mandatory | string | The document serving as proof of the permanent address. For the complete list of accepted documents, please refer to this page. | Allowed Values | Not Applicable |
appPerAddRef | Mandatory | string | The reference number of the address proof document submitted as the permanent address proof.
| Not Applicable | Not Applicable |
appPerAddDt | Optional | string | The validity date of the permanent address proof, as specified in the address proof document | DD-MM-YYYY | Not Applicable |
appIncome | Optional | string | The user's gross annual income, represented as a range. For more details on income slabs, please refer to this page. | Allowed Values | Not Applicable |
appOcc | Optional | string | The occupation of the user, specified by selecting a domain from this list. | Allowed Values | Not Applicable |
appOthOcc | Optional | string | The occupation details of the user, if 'Others' (as from appOcc's value) | Not Applicable | Not Applicable |
appPolConn | Optional | string | The PEP status of the user, which they can select based on the category that applies to them. The categories are:
|
| Not Applicable |
appDocProof | Mandatory | string | The details of the documents submitted by the user: whether they are self-certified copies or true copies of the documents, or if they are exempted from submitting any documents altogether |
| Not Applicable |
appInternalRef | Optional | string | Internal reference number for intermediaries | Not Applicable | Not Applicable |
appBranchCode | Optional | string | The branch code to which the KYC is attached | Not Applicable | Not Applicable |
appMarStatus | Mandatory | string | The marital status of the user, whether they are married or unmarried |
| Not Applicable |
appNetwrth | Optional | string | The net worth of the user or the organization | Numeric value | Not Applicable |
appNetworthDt | Selectively Optional* | string | The net worth of the user or the organization as on date
Note Selectively Optional*: This is optional if the gross annual income is specified for a user. If the net worth is provided for an organization, then this parameter is mandatory. | DD-MM-YYYY | Not Applicable |
appIncorpPlc | Optional | string | The place of incorporation of the organization, if applicable | Not Applicable | Not Applicable |
appOtherInfo | Optional | string | Any additional information | Not Applicable | Not Applicable |
appIpvName | Optional. (Mandatory for NRI journeys) | string | The name of the person carrying out the In-Person Verification (IPV) | Not Applicable | Not Applicable |
appIpvDesg | Optional. (Mandatory for NRI journeys) | string | The designation of the person carrying out the IPV | Not Applicable | Not Applicable |
appIpvOrgan | Optional. (Mandatory for NRI journeys) | string | The organization of the person carrying out the IPV | Not Applicable | Not Applicable |
appKycMode | Mandatory | string | The mode of KYC verification. It could be one of the following:
|
| Not Applicable |
appVidNo | Optional | string | The Aadhaar Virtual ID Number of the user or organization | Not Applicable | Not Applicable |
appUidToken | Optional | string | The Aadhaar UID Token | Not Applicable | Not Applicable |
appVerNo | Optional | string | The version number | Not Applicable | Not Applicable |
appAuthName | Optional | string | The name of the Foreign Portfolio Investment (FPI) authorizer | Not Applicable | Not Applicable |
appAuthEmail | Optional | string | The email address of the FPI authorizer | Not Applicable | Not Applicable |
appAuthEmail1 | Optional | string | The additional email address of the FPI authorizer | Not Applicable | Not Applicable |
appAuthEmail2 | Optional | string | The additional email address of the FPI authorizer | Not Applicable | Not Applicable |
appAuthMobile | Optional | string | The mobile number of the FPI authorizer | Not Applicable | Not Applicable |
appAuthFpiConsent | Optional | string | The FPI consent for the authorized person, if any | yes, no | Not Applicable |
appAuthUboConsent | Optional | string | UBO consent for the authorized person, if any | yes, no | Not Applicable |
noOfKycRecords | Mandatory | integer | The number of KYC records | Not Applicable | Not Applicable |
noOfAddldataRecords | Optional | integer | The number of additional data records, if any | Not Applicable | Not Applicable |
pan | Mandatory | file | The Application Opening Form (AOF) containing all user details | Not Applicable | Not Applicable |
aadhaar | Mandatory | file | The Aadhaar in xml format | Not Applicable | Not Applicable |
appFatcaApplicableFlag | Mandatory | string | The confirmation on whether the application is subject to FATCA regulations | yes, no | Not Applicable |
Request
The following code snippet demonstrates a standard curl request for the API:
curl --location --request POST 'https://ind-engine.thomas.hyperverge.co/v1/async/CVLKRAUpload' \
--header 'Content-Type: application/json' \
--header 'appId: <Enter_the_App_ID>' \
--header 'appKey: <Enter_the_App_Key>' \
--header 'transactionId: <Enter_the_Transaction_ID>' \
--data '{
"appUpdtflg": "<Enter_Update_Flag>",
"kraAgency": "<Enter_the_KRA_undertaking_the_KYC_application>",
"appType": "<Enter_Applicant_Type>",
"appNo": "<Enter_Application_Number>",
"appPanNo": "<Enter_the_PAN>",
"appPanCopy": "<Enter_if_PAN_Copy_is_Submitted>",
"appExmt": "<Enter_Exemption_Status>",
"appExmtCat": "<Enter_Exemption_Category>",
"appExmtIdProof": "<Enter_Exemption_ID_Proof>",
"appIpvFlag": "<Enter_IPV_Flag>",
"appIpvDate": "<Enter_IPV_Date_in_DD-MM-YYYY>",
"appGen": "<Enter_Gender>",
"appName": "<Enter_Name>",
"appFName": "<Enter_Fathers_Name>",
"appRegno": "<Enter_Registration_Number>",
"appDobIncorp": "<Enter_Date_of_Birth_or_Incorporation_in_DD-MM-YYYY>",
"appCommenceDt": "<Enter_Commencement_Date>",
"appNationality": "<Enter_Nationality>",
"appOthNationality": "<Enter_Other_Nationality_if_Applicable>",
"appCompStatus": "<Enter_Company_Status>",
"appOthCompStatus": "<Enter_Other_Company_Status>",
"appResStatus": "<Enter_Residential_Status>",
"appResStatusProof": "<Enter_Residential_Status_Proof>",
"appUidNo": "<Enter_UID_Number>",
"appCorAdd1": "<Enter_Correspondence_Address_Line_1>",
"appCorAdd2": "<Enter_Correspondence_Address_Line_2>",
"appCorAdd3": "<Enter_Correspondence_Address_Line_3>",
"appCorCity": "<Enter_Correspondence_City>",
"appCorPincd": "<Enter_Correspondence_Pincode>",
"appCorState": "<Enter_Correspondence_State>",
"appCorCtry": "<Enter_Correspondence_Country>",
"appOffIsd": "<Enter_Office_ISD_Code>",
"appOffStd": "<Enter_Office_STD_Code>",
"appOffNo": "<Enter_Office_Number>",
"appResIsd": "<Enter_Residence_ISD_Code>",
"appResStd": "<Enter_Residence_STD_Code>",
"appResNo": "<Enter_Residence_Number>",
"appMobIsd": "<Enter_Mobile_ISD_Code>",
"appMobNo": "<Enter_Mobile_Number>",
"appFaxIsd": "<Enter_Fax_ISD_Code>",
"appFaxStd": "<Enter_Fax_STD_Code>",
"appFaxNo": "<Enter_Fax_Number>",
"appEmail": "<Enter_Email>",
"appCorAddProof": "<Enter_Correspondence_Address_Proof>",
"appCorAddRef": "<Enter_Correspondence_Address_Reference>",
"appCorAddDt": "<Enter_Correspondence_Address_Date>",
"appPerAddFlag": "<Enter_if_Permanent_Address_is_Same_as_Correspondence>",
"appPerAdd1": "<Enter_Permanent_Address_Line_1>",
"appPerAdd2": "<Enter_Permanent_Address_Line_2>",
"appPerAdd3": "<Enter_Permanent_Address_Line_3>",
"appPerCity": "<Enter_Permanent_City>",
"appPerPincd": "<Enter_Permanent_Pincode>",
"appPerState": "<Enter_Permanent_State>",
"appPerCtry": "<Enter_Permanent_Country>",
"appPerAddProof": "<Enter_Permanent_Address_Proof>",
"appPerAddRef": "<Enter_Permanent_Address_Reference>",
"appPerAddDt": "<Enter_Permanent_Address_Date>",
"appIncome": "<Enter_Gross_Annual_Income>",
"appOcc": "<Enter_Occupation>",
"appOthOcc": "<Enter_Other_Occupation>",
"appPolConn": "<Enter_Political_Connection_Status>",
"appDocProof": "<Enter_Document_Proof_Status>",
"appInternalRef": "<Enter_Internal_Reference>",
"appBranchCode": "<Enter_Branch_Code>",
"appMarStatus": "<Enter_Marital_Status>",
"appNetwrth": "<Enter_Net_Worth>",
"appNetworthDt": "<Enter_Net_Worth_Date_in_DD-MM-YYYY>",
"appIncorpPlc": "<Enter_Incorporation_Place>",
"appOtherInfo": "<Enter_Other_Information>",
"appFiller1": "<Enter_Filler_Field_1>",
"appFiller2": "<Enter_Filler_Field_2>",
"appFiller3": "<Enter_Filler_Field_3>",
"appIpvName": "<Enter_IPV_Name>",
"appIpvDesg": "<Enter_IPV_Designation>",
"appIpvOrgan": "<Enter_IPV_Organization>",
"appKycMode": "<Enter_KYC_Mode>",
"appVerNo": "<Enter_Version_Number>",
"appVidNo": "<Enter_VID_Number>",
"appUidToken": "<Enter_UID_Token>",
"appAuthName": "<Enter_Authorizer_Name>",
"appAuthEmail": "<Enter_Authorizer_Email>",
"appAuthEmail1": "<Enter_Alternate_Email_1>",
"appAuthEmail2": "<Enter_Alternate_Email_2>",
"appAuthMobile": "<Enter_Authorizer_Mobile>",
"appAuthFpiConsent": "<Enter_FPI_Consent_Status>",
"appAuthUboConsent": "<Enter_UBO_Consent_Status>",
"noOfKycRecords": "<Enter_Number_of_KYC_Records>",
"noOfAddldataRecords": "<Enter_Additional_Data_Records>",
"pan": "<PAN_Document>",
"aadhaar": "<Aadhaar_Document>",
"applicationStatus": "<Enter_Application_Status>",
"appFatcaApplicableFlag": "<Enter_FATCA_Applicability>"
}'
Success Response
The following code snippet demonstrates a success response from the API:
{
"status": "success",
"statusCode": "200",
"result": {
"kycdata": {
"appPanNo": "<PAN_Number_Of_The_Applicant>",
"appPanDob": "<Date_Of_Birth_Associated_With_PAN>",
"appName": "<Name_Of_The_Applicant>",
"appStatus": "<KYC_Application_Status>",
"appModfAck": "<Modification_Acknowledgment_Flag>",
"appStatusdt": "<Date_Of_KYC_Application_Status>",
"appEntrydt": "<Date_Of_KYC_Record_Entry>",
"appModdt": "<Date_Of_Last_Modification>",
"appPosCode": "<Point_Of_Service_Code>"
},
"footer": {
"appResponseDate": "<Timestamp_Of_The_Response>",
"appTotalRec": "<Total_Number_Of_Records>"
}
},
"metaData": {
"requestId": "<Unique_Request_Identifier>",
"transactionId": "<Transaction_Identifier>"
}
}
Success Response Details
The following table outlines the details of the success response from the API:
| Parameter | Type | Description |
|---|---|---|
| status | string | The status of the request |
| statusCode | string | The HTTP status code of the response |
| appPanNo | string | The PAN number associated with the KYC application |
| appPanDob | string | The date of birth linked to the provided PAN |
| appName | string | The name of the user or organization associated with the application |
| appStatus | string | Represents the initial status of the application |
| appModfAck | string | The acknowledgment flag for KYC modifications |
| appStatusdt | string | The date when the KYC application was initiated |
| appEntrydt | string | The date when the KYC application was entered into the system |
| appModdt | string | The date when the KYC application was last modified |
| appPosCode | string | POS code of the Asset Management Company (AMC) on whose behalf the request is being updated |
| appResponseDate | string | The date and time when the response was generated |
| appTotalRec | string | The total number of records in the response |
| requestId | string | The unique identifier for the request |
| transactionId | string | The unique identifier for the transaction |
Error Responses
The following are some error responses from the API:
- Invalid PAN format
- Invalid DOB
- Invalid Record Count
- Invalid Request Details
- Duplicate Request
- Invalid Batch Size
- Invalid Batch Number
{
"status": "failure",
"statusCode": "400",
"message": "Invalid PAN format"
}
{
"status": "failure",
"statusCode": "400",
"message": "Invalid DOB provided"
}
{
"status": "failure",
"statusCode": "400",
"message": "Invalid Record Count"
}
{
"status": "failure",
"statusCode": "400",
"message": "Invalid request details"
}
{
"status": "failure",
"statusCode": "400",
"message": "Duplicate request"
}
{
"status": "failure",
"statusCode": "400",
"message": "Invalid Batch Size"
}
{
"status": "failure",
"statusCode": "400",
"message": "Invalid / Expired Batch No"
}
- Missing/Invalid credentials
- Unsupported Media Type
- Internal Server Error
- Invalid Details
- Invalid XML
- Invalid POS Code
{
"message": "Missing/Invalid credentials",
"statusCode": 401,
"status": "failure"
}
{
"status": "failure",
"statusCode": "415",
"message": "Unsupported media type"
}
{
"status": "failure",
"statusCode": "500",
"message": "Internal Server Error"
}
{
"status": "failure",
"statusCode": "500",
"message": "Invalid User ID / PosCode / Password / Access Privilege Not Set"
}
{
"status": "failure",
"statusCode": "500",
"message": "Invalid XML"
}
{
"status": "failure",
"statusCode": "500",
"message": "Invalid Intermediary Code provided"
}
Error Response Details
failure status, with a relevant status code and error message.The following table lists all error responses:
| Status Code | Error Message | Error Description | Error Resolution |
|---|---|---|---|
| 400 | Invalid PAN format | The PAN provided is not in the correct format. ('CCCCCDDDDC' format, where 'C' represents a character and 'D' represents a digit) | Verify that the PAN value follows the correct alphanumeric format and resubmit the request. |
| 400 | Invalid DOB provided | The date of birth provided is not valid | Ensure the date of birth is a valid calendar date in DD-MM-YYYY format and resubmit. |
| 400 | Invalid Record Count | The record count specified in the request is not valid | Confirm that the noOfKycRecords value matches the actual number of KYC records included in the request. |
| 400 | Invalid request details | The request details provided are incomplete or incorrect | Review all mandatory fields for missing or incorrectly formatted values and resubmit. |
| 400 | Duplicate request | The request has already been submitted previously | Check whether a previous submission was successful before resubmitting. Use a new unique identifier if resubmission is needed. |
| 400 | Invalid Batch Size | The batch size is invalid | Ensure the batch size falls within the permitted range and resubmit the request. |
| 400 | Invalid / Expired Batch No | The batch ID (a unique ID assigned by the KRA for each batch) is invalid | Verify that the batch number is correct and has not expired. Obtain a new batch number if required. |
| 401 | Missing/Invalid credentials | The request is either missing the mandatory appId and appKey combination or has invalid values | Confirm that the appId and appKey headers are included and match the credentials from the dashboard. |
| 415 | Unsupported media type | The media type provided in the request is not supported | Set the Content-Type header to application/json and resubmit. |
| 500 | Internal Server Error | Please check the request headers or contact the HyperVerge team for resolution | Review the request headers for any anomalies. If the issue persists, contact the HyperVerge support team. |
| 500 | Invalid User ID / PosCode / Password / Access Privilege Not Set | The provided user credentials or access privileges are not correctly configured | Verify that the user ID, POS code, and password are correct and that the required access privileges have been configured. |
| 500 | Invalid XML | The Aadhaar XML file provided is not valid | Ensure the Aadhaar XML file is well-formed and conforms to the expected schema before resubmitting. |
| 500 | Invalid Intermediary Code provided | The POS code of the AMC provided in the request is not valid | Confirm the AMC POS code is correct and registered with CVL KRA. Contact the HyperVerge team if the issue persists. |
appStatus and appUpdtflg Mapping
| Status | appUpdtflg |
|---|---|
|
|
|
|
|
|
If we have the following codes:
| Interop Modification In case KYC details are found in other KRAs like NDML/Dotex/Karvy/CAMS and the user wants to modify details we utilize Interop Modification |
KRA Webhook
The KRA Webhook facilitates real-time updates by notifying users about changes to the KRA application status. It enables seamless monitoring of application progress and can automate downstream processes, including document verification, communication, or follow-up actions. Please access the documentation for KRA Webhook here .